package cn.hfatec.shms.system.user.dao;

import cn.hfatec.mybatis.mapper.SqlMapper;
import cn.hfatec.shms.system.user.model.User;
import cn.hfatec.shms.system.user.model.UserParams;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @author hfatec
 * @version 1.0
 *          <p/>
 *          the JAVA code is generate by middlegen
 */
@Component("UserDao")
public interface UserDao extends SqlMapper {

    /**
     * 查询数据
     */
    public List queryUser(@Param("params") UserParams params);

    /**
     * 查询数据
     */
    public List selectUser(@Param("params") UserParams params);
    /**
     * 根据主键获取数据
     */
    public User getUserById(Integer id);

    /**
     * 根据登录名称获取用户信息
     *
     * @param loginName
     * @return
     */
    public User getUserByLoginName(String loginName);

    /**
     *
     * 获取用户信息用于登录
     *
     * @param loginName
     * @return
     */
    public User getUserForLogin(String loginName);

    /**
     * 插入数据
     */
    public void insert(User user);

    /**
     * 删除数据
     */
    public void delete(Integer id);

    /**
     * 更新数据
     */
    public void update(User user);

    /**
     * 删除机构时清空该机构下用户的机构信息
     *
     * @param orgId
     */
    public void updateUserOrgIdforOrgId(String orgId);

    /**
     * 根据角色名称和机构ID获取用户信息
     * @param roleName
     * @param orgId
     * @return
     */
    public List getUserByRoleName(@Param("roleName")String roleName, @Param("orgId")String orgId);


    /**
     * 根据角色Id和机构ID获取用户信息
     * @param roleId
     * @param orgId
     * @return
     */
    public List getUserByRoleNameAndOrgId(@Param("roleId")String roleId, @Param("orgId")String orgId);

    /**
     * 查询数据(主管数据)
     */
    public List queryOSUser(@Param("params") UserParams params);

}
